The present invention relates generally to data communication systems and methods and, more particularly, to data communication systems and methods in which commands are encoded in a manner that facilitates high-level functionality.
Ethernet's broad use continues to stimulate dramatic increases in performance and decreases in cost for components commonly used in commercial applications. Many of today's commercial applications tolerate the relatively high latency associated with Ethernet-based systems, however emerging commercial applications, such as multithreaded databases and file systems, will likely require reduced latency. Some specialized network solutions provide reduced latency, but are more expensive than Ethernet-based scalable clusters.
One area in which latency performance can be improved is in the network interface controller (NIC). A NIC is a hardware device that supports communication with a network. As context, consider the exemplary system of FIG. 1. Therein a symmetric multiprocessor (SMP) system 10 includes a number of central processor units (CPUs) 12 which share memory unit 14 via coherence fabric 16. Although SMP 10 is shown as having four processor cores, those skilled in the art will appreciate that SMP 10 can have more or fewer CPUs. SMP 10 sends messages to other SMPs 20 under the control of NIC 18 via Ethernet connections and a fabric (switch) 22. The NIC 18 will typically have a processor (not shown) associated therewith, either as an integral part of the NIC or in the form of a helper processor, so that the NIC has sufficient intelligence to interpret various commands. The fabric 22 will route messages to their intended recipients, although occasionally messages will be dropped such that the system illustrated in FIG. 1 supports retransmission of dropped messages. Although there may only be one hardware NIC 18 per SMP 10, 20, many different software programs may be running simultaneously on a given SMP and may have messages to transmit across the system via fabric 22. Note that the above described system is purely exemplary and that the present invention is equally applicable to, among other things, systems involving single processor systems.
Given the large number of messages that may be communicated between NICs, message handling can introduce significant latency in systems such as that illustrated in FIG. 1. Accordingly, it would be desirable to provide mechanisms and methods which reduce latency in such networked systems.